МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра САПР
ЗВІТ
До виконання лабораторної роботи №6
На тему: “ Використання системи Swing в Java”
З курсу “ Об’єктно-орієнтоване програмування”
МЕТА РОБОТИ
Метою роботи є придбання навиків програмування графічних додатків Java з використанням системи Swing.
КОРОТКІ ТЕОРЕТИЧНІ ВІДОМОСТІ
3.1. Основні компоненти Swing
Компоненти Swing можна розділити на наступні типи:
контейнери верхнього рівня (класи JWindow, JFrame, JDialog і JApplet);
· спеціалізовані контейнери (класи JInternalFrame, JLayeredPane, JRootPane і JOptionPane);
· спільноцільові контейнери (класи JPanel, JScrollPane, JSplitPane, JTabbedPane і JToolBar);
· компоненти управління (класи JButton, JCheckBox, JRadioButton, JToggleButton, JComboBox, JList, JMenuBar, JMenu, JMenuItem, JCheckboxMenuItem, JRadioButtonMenuItem, JSeparator і JSlider);
· нередаговані інформаційні компоненти (класи JLabel, JProgressBar і JToolTip);
· редаговані інформаційні компоненти (класи JColorChooser, JFileChooser, JTable, JTree, JTextField, JPasswordField, JTextArea, JEditorPane і JTextPane).
На відміну від компонентів AWT, компоненти системи Swing здатні працювати тільки по моделі делегування подій.
3.2. Контейнери верхнього рівня і спеціалізовані контейнери
Так само, як і для AWT, для створення вікон графічних додатків використовується не клас JWindow, а клас JFrame (вікна, що створюються класом JWindow не містять найменування вікна і кнопок управління вікном). Додатки з графічним інтерфейсом використовує, принаймні, один фрейм. Аплети також можуть використовувати фрейми.
· Для створення вікон, які залежать від іншого вікна (наприклад, зникають, коли згортається вікно, в якому вони використовуються) застосовуються діалогові вікна класу JDialog.
· Аплети, що використовують компоненти Swing, повинні бути підкласами класу JApplet.
· Будь-яка програма, яка використовує компоненти Swing, містить, принаймні, один контейнер верхнього рівня. Цей контейнер є коренем ієрархії контейнерів, що містять всі компоненти Swing.
· Як правило, окремий графічний додаток має, принаймні, одну ієрархію контейнерів, в якій коренем є JFrame. Діалогове вікно або аплет також утворюють ієрархію контейнерів, коренем якої є JDialog або JApplet. Наприклад, якщо додаток містить одне головне вікно і два діалогові вікна, то вона містить три ієрархії контейнерів.
3.2.1. Коренева панель
Кожен контейнер верхнього рівня базується на проміжному, прихованому, контейнері, званому кореневою панеллю (root pane). Коренева панель визначена в класі JRootPane.
· Сама коренева панель звичайно не використовується, а використовуються її компоненти, які коренева панель (клас) надає фрейму (або іншому контейнеру верхнього рівня). Коренева панель містить наступні компоненти:
шарувата панель (layered pane);
· панель вмісту (content pane);
· рядок меню (menu bar) - необов'язковий компонент;
· скляна панель (glass bar).
Єдиним обов'язковим контейнером верхнього рівня є панель вмісту.
3.2.2. Панель вмісту
Панель вмісту містить всі компоненти Swing (кнопки, написи, текстові поля і т.д.). Оскільки для контейнерів верхнього рівня вміст вікна визначається за допомогою JRootPanel і повинно, на відміну від вікон AWT, визначатися уручну, для додавання компонент або установки менеджера компоновки використовуються не методи add() і setLayout(), а методи отримання і установки панелі вмісту:
· public Container getContentPane()
і
public void setContentPane(Container contentPane)
які визначені в класах JFrame, JDialog, JApplet і JInternalFrame.
Так, додавання текстового поля у фрейм, діалогове вікно, аплет або внутрішній фрейм з установкою менеджера компоновки FlowLayout виглядає таким чином:
· Container contentPane = getContentPane();
· JTextField inputField = new JTextField(15);
· contentPane.setLayout(new FlowLayout());
· contentPane.add(inputField);
· Слід зазначити, що для всіх контейнерів верхньог...